<AudivolvStream>

	<whatIsAStream>
	
		Between each 2 AudivolvAgents, there can be multiple streams, and each can have multiple channels. Each string goes in 1 direction only, of 2 possible directions between the 2 AudivolvAgents.
		For each pair of input and output stream, the 2 AudivolvAgents must agree on number of channels, direction, and goal sampleRate, but each AudivolvAgent must keep its own statistics of delay.

		<typesOfStream>
			There are 2 main types of streams: multi-input and multi-output.
		</typesOfStream>
		
		<quantityOfChannels>
			At least 1. Stereo sound or mouse movement is 2.
			An Emotiv Epoc helmet would be at least 16 channels.
			Any small integer will work.
		</quantityOfChannels>
		
		<sampleRate>
			All streams have a sampleRate that is measured in hz (how many per second).
			A sample is a number that measures audio amplitude.
			The number of bytes and channels per sample can be different between different streams.
		</sampleRate>
		
		<statisticsOfDelay>
			All streams (and receivers of the streamed data) have statistics of DELAY.
			The simplest example would be average and standard-deviation of seconds of delay,
			which would be much higher across the internet than on 1 computer.
			<exampleOfDelay>
				Audio skipping because of a cheap sound card
			</exampleOfDelay>
			<exampleOfDelay>
				Human hears sound and reacts by moving mouse a fraction of a second later.
				SampleRate of mouse is much lower than audio, but its the same type of thing.
			</exampleOfDelay>
			<exampleOfDelay>
				Almost-live television is approved or censored and a few seconds later sent to you
			</exampleOfDelay>
		</statisticsOfDelay>

	</whatIsAStream>

	<examplesOfStreams>
		<multiInputExample>
			normal 1-channel microphone
			sampleRate=22050
			delayAverage=.2
			delayStandardDeviation=.05
		</multiInputExample>
		
		<multiInputExample>
			5-channel realtime synthesized sound from some computer on the internet
			sampleRate=22050
			delayAverage=.7
			delayStandardDeviation=.1
		</multiInputExample>
		
		<multiInputExample>
			2-channel mp3 file
			sampleRate=44100
			delayAverage=0
			delayStandardDeviation=0
		</multiInputExample>
		
		<multiInputExample>
			Human moves mouse after reacting to hearing sound.
			sampleRate=50
			delayAverage=.4
			delayStandardDeviation=.2
		</multiInputExample>
		
		<multiOutputExample>
			2-channel speakers
			sampleRate=44100
			delayAverage=0
			delayStandardDeviation=0
		</multiOutputExample>
		
		<multiOutputExample>
			a second sound-card with 1 speaker
			sampleRate=44100
			delayAverage=0
			delayStandardDeviation=0
		</multiOutputExample>
		
		<multiOutputExample>
			audio file (examples: ogg, wav)
			sampleRate=44100
			delayAverage=1
			delayStandardDeviation=.5
		</multiOutputExample>
		
		<multiOutputExample>
			3 channels: Red, Green, and Blue pixels on some rectangle of the screen,
			in left-to-right then top-to-bottom order, passing over the
			rectangle approximately 3 times per second (timing should be adjustable).
			sampleRate=44100
			delayAverage=.2
			delayStandardDeviation=.1
		</multiOutputExample>

	</examplesOfStreams>

</AudivolvStream>